<template>
  <div class="content">
    <div class="content-info">
      <div class="content-info-block">
        <h1 class="info-block-title">企业挂榜 服务机构揭榜</h1>
        <h2 class="info-block-sub-title">需求为引导、企业为主体、市场为导向、产学研深度融合</h2>
        <div class="btn-list">
          <!-- 添加自定义类名 -->
          <el-button class="custom-white-btn" color="transparent" size="large">创建需求</el-button>
          <el-button class="custom-white-btn" color="transparent" size="large"
            >下载需求征集表</el-button
          >
        </div>
      </div>
    </div>
    <div class="content-requirement">
      <div class="search-bar">
        <el-input
          v-model="queryParams.requirementName"
          placeholder="请输入关键词"
          class="search-input"
          size="large"
        >
          <template #append>
            <el-button type="primary" :icon="Search" @click="search">搜索</el-button>
          </template>
        </el-input>
      </div>
      <el-row class="requirement-list" :gutter="20">
        <el-col
          :span="12"
          class="requirement-item"
          v-for="(item, index) in requireList"
          :key="index"
        >
          <div class="require-img">
            <!-- 修改图片绑定，添加默认图片 -->
            <img
              :src="item.coverPhoto || '@/assets/images/center-list-bg.png'"
              alt=""
              class="require-image"
            />
          </div>
          <div class="requirement-info">
            <div class="title-container">
              <div class="requirement-title">{{ item.requirementName }}</div>
              <el-check-tag class="requirement-status" checked>{{
                getLeftDay(item.requirementCompletionTime)
              }}</el-check-tag>
            </div>
            <div class="extra-info">
              <span>坐标:{{ item.location || '暂无' }}</span>
              <el-divider direction="vertical" />
              <span>领域:{{ item.requirementArea }}</span>
              <el-divider direction="vertical" />
              <span
                >预算:{{
                  item.requirementBudget != '面议'
                    ? item.requirementBudget + '万元'
                    : item.requirementBudget
                }}</span
              >
            </div>
            <div class="requirement-description">{{ item.requirementDescribe }}</div>
            <div class="requirement-footer">
              <span class="footer-item">
                <el-icon><View /></el-icon>
                <span class="footer-number">{{ item.viewCount || 0 }}</span>
              </span>
              <span class="footer-item">
                <el-icon><Star /></el-icon>
                <span class="footer-number">{{ item.starCount || 0 }}</span>
              </span>
              <span class="footer-item">
                <el-icon><Key /></el-icon>
                <span class="footer-number">{{ item.keyCount || 0 }}</span>
              </span>
            </div>
          </div>
        </el-col>
        <div class="pagination">
          <el-pagination
            layout="prev, pager, next"
            :total="queryParams.total"
            @current-change="currentChange"
          />
        </div>
      </el-row>
      <!-- 新增最新活动模块 -->
      <div class="latest-activity">
        <h3 class="activity-title"><span>最新活动</span></h3>
        <div class="activity-content">
          <div class="activity-img">
            <img src="@/assets/images/zhejiang-bg.png" alt="最新活动" />
          </div>
          <div class="activity-text">
            <div
              >为深入贯彻落实国务院《计量发展规划（2021—2035年）》，按照《2024年全国计量工作要点》的有关要求，进一步推动产业计量需求对接和科技成果转化，市场监管总局决定在全国范围内组织开展产业计量“揭榜挂帅”活动。</div
            >
            <br />
            <div>
              本次活动，鼓励企业全面梳理和挖掘计量需求，搭建产业计量供需对接平台，采取“企业挂榜、服务机构揭榜”的活动形式，引导计量技术机构、科研院所、高等院校等单位帮助企业解决生产科研中的各类计量难题，推动企业创新发展和质量提升。主要聚焦但不限于以下方面的计量问题：在产品设计、研制、试验、生产和使用等各个环节遇到的“测不了、测不全、测不准、测不快”问题；仪器设备的在线远程检定和校准难题；开展在线计量、远程计量、嵌入式计量等相关测试方法缺失的问题；微观量、复杂量、动态量、多参量等综合测量、复杂测量、准确测量难题；复杂被测对象、复杂工况环境等工程应用场景的参数测量难题；特殊工艺过程、特殊产品的计量控制难题；量子传感和芯片级计量遇到的量传溯源难题；智能化计量校准技术、计量软件功能安全测评等。
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>
<script setup>
import { cmsRequirementRelease } from '@/api'
import { useRouter } from 'vue-router'
import { Search, View, Star, Key } from '@element-plus/icons-vue'

const bgShow = ref(0)
const router = useRouter()

function jump(val) {
  switch (val) {
    case 1:
      router.push('/centerIntroductory')
      break
    // case 2:
    //     router.push('/technologyAssociation')
    //     break;
    case 3:
      router.push('/technologyAssociation')
      break
    case 4:
      router.push('/conferenceTraining')
      break
    case 5:
      router.push('/typicalCase')
      break
    case 6:
      router.push('/news')
      break
    default:
      break
  }
}

const queryParams = reactive({
  pageNum: 1, //当前页码
  pageSize: 10, //每页显示条数
  total: 0, //总条数
  requirementName: '' //需求名称
})

const requireList = ref([])

function getList() {
  cmsRequirementRelease(queryParams).then(({ data }) => {
    // requireList.value = res.data.list
    requireList.value = [
      {
        id: '1',
        coverPhoto:
          '', // base64图片数据，此处仅为示例，实际使用时需要根据后端返回的数据进行替换
        requirementName: '需求名称需求名称需求名称需求名称需求名称需求名称需求名称需求名称需求名称',
        requirementArea: '需求领域1',
        requirementBudget: '面议',
        requirementCompletionTime: '2025-09-10',
        requirementDescribe:
          '需求描述需求描述需求描述需求描述需求描述需求描述需求描述需求描述需求描述需求描述需求描述需求描述需求描述需求描述需求描述需求描述需求描述需求描述需求描述需求描述需求描述需求描述需求描述需求描述需求描述需求描述需求描述',
        viewCount: 100,
        starCount: 50,
        keyCount: 20
      },
      {
        id: '2',
        coverPhoto: '@/assets/images/center-list-bg.png',
        requirementName: '需求名称21需求名称需求名称',
        requirementArea: '需求领域2',
        requirementBudget: '面议',
        requirementCompletionTime: '2025-09-10',
        requirementDescribe:
          '需求描述2需求描述2需求描述2需求描述2需求描述2需求描述2需求描述2需求描述2需求描述2需求描述2需求描述2需求描述2需求描述2需求描述2',
        viewCount: 100,
        starCount: 50,
        keyCount: 20
      }
    ]
  })
}
function currentChange(val) {
  queryParams.pageNum = val
  getList()
}

// @ApiModelProperty(name = "状态")
//     @TableField("STATUS")
//     private int status ;
//     /** 机关ID */
//     @ApiModelProperty(name = "机关ID")
//     @TableField("ORG_ID")
//     private String orgId ;
//     /** 机关名称 */
//     @ApiModelProperty(name = "机关名称")
//     @TableField("ORG_NAME")
//     private String orgName ;
//     /** 部门ID */
//     @ApiModelProperty(name = "部门ID")
//     @TableField("DEPT_ID")
//     private String deptId ;
//     /** 部门名称 */
//     @ApiModelProperty(name = "部门名称")
//     @TableField("DEPT_NAME")
//     private String deptName ;

//     /** 封面图片 */
//     @ApiModelProperty(name = "封面图片")
//     @TableField("COVER_PHOTO")
//     private String coverPhoto ;
//     /** 需求名称 */
//     @ApiModelProperty(name = "需求名称")
//     @TableField("REQUIREMENT_NAME")
//     private String requirementName ;
//     /** 需求领域 */
//     @ApiModelProperty(name = "需求领域")
//     @TableField("REQUIREMENT_AREA")
//     private String requirementArea ;
//     /** 需求类型 */
//     @ApiModelProperty(name = "需求类型")
//     @TableField("REQUIREMENT_TYPE")
//     private String requirementType ;
//     /** 需求描述 */
//     @ApiModelProperty(name = "需求描述")
//     @TableField("REQUIREMENT_DESCRIBE")
//     private String requirementDescribe ;
//     /** 技术要求 */
//     @ApiModelProperty(name = "技术要求")
//     @TableField("TECHNICAL_REQUIREMENT")
//     private String technicalRequirement ;
//     /** 预算类型 */
//     @ApiModelProperty(name = "预算类型")
//     @TableField("BUDGET_TYPE")
//     private String budgetType ;
//     /** 需求预算 */
//     @ApiModelProperty(name = "需求预算")
//     @TableField("REQUIREMENT_BUDGET")
//     private String requirementBudget ;
//     /** 需求预期完成截止时间 */
//     @ApiModelProperty(name = "需求预期完成截止时间")
//     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
//     @TableField("REQUIREMENT_COMPLETION_TIME")
//     private Date requirementCompletionTime ;
//     /** 说明附件 */
//     @ApiModelProperty(name = "说明附件")
//     @TableField("EXPLANATION_ATTACHMENT")
//     private String explanationAttachment ;
//     /** 说明附件名称 */
//     @ApiModelProperty(name = "说明附件名称")
//     @TableField("ATTACHMENT_NAME")
//     private String coverPhoto ;
//     /** 单位名称 */
//     @ApiModelProperty(name = "单位名称")
//     @TableField("UNIT_NAME")
//     private String unitName ;
//     /** 省（字典代码） */
//     @ApiModelProperty(name = "省（字典代码）")
//     @TableField("PROVINCE")
//     private String province ;
//     /** 市（字典代码） */
//     @ApiModelProperty(name = "市（字典代码）")

//     @TableField("CITY")
//     private String city ;
//     /** 区（字典代码） */
//     @ApiModelProperty(name = "区（字典代码）")

//     @TableField("AREA")
//     private String area ;
//     /** 具体地址 */
//     @ApiModelProperty(name = "具体地址")
//     @TableField("SPECIFIC_ADDRESS")
//     private String specificAddress ;
//     /** 单位性质（字典代码） */
//     @ApiModelProperty(name = "单位性质（字典代码）")
//     @TableField("UNIT_NATURE")
//     private String unitNature ;
//     /** 单位规模 */
//     @ApiModelProperty(name = "单位规模")
//     @TableField("UNIT_SIZE")
//     private String unitSize ;
//     /** 联系人 */
//     @ApiModelProperty(name = "联系人")
//     @TableField("CONTACTS")
//     private String contacts ;
//     /** 联系电话 */
//     @ApiModelProperty(name = "联系电话")
//     @TableField("CONTACT_NUMBER")
//     private String contactNumber ;
//     /** 联系人部门 */
//     @ApiModelProperty(name = "联系人部门")
//     @TableField("CONTACT_DEPARTMENT")
//     private String contactDepartment ;
//     /** 联系人职务 */
//     @ApiModelProperty(name = "联系人职务")
//     @TableField("CONTACT_TITLE")
//     private String contactTitle ;

// 根据传入时间获取剩余天数
function getLeftDay(timeText) {
  // 判断是否为超过当前时间
  if (timeText < new Date()) {
    return '对接已结束'
  }
  // 计算剩余天数
  var now = new Date() // 当前时间
  var end = new Date(timeText) // 截止时间
  var leftTime = end.getTime() - now.getTime() // 剩余时间
  var leftDays = Math.ceil(leftTime / (1000 * 60 * 60 * 24)) // 剩余天数
  return '对接中 剩余' + leftDays + '天'
}

onMounted(() => {
  getList()
})
</script>
<style lang="scss" scoped>
.content {
  //width: 100%;
  //height: 1880px;
  padding-bottom: 40px;

  .content-info {
    width: 100%;
    height: 440px;
    margin-top: 40px;
    background: url('@/assets/images/require-bg.png') no-repeat;
    background-size: 100% 100%;

    .content-info-block {
      width: 1200px;
      padding-top: 78px;
      margin: auto;
      color: #fff;

      .info-block-title {
        margin-bottom: 20px;
        text-align: center;
        font-size: 46px;
        font-weight: 400;
        letter-spacing: 6px;
        margin: 0;
      }

      .info-block-sub-title {
        text-align: center;
        font-size: 16px;
        font-weight: 500;
        margin-bottom: 30px;
        letter-spacing: 8px;
      }

      .btn-list {
        text-align: center;
        :deep(.custom-white-btn) {
          font-size: 16px;
          border-color: white;
          color: white;
          background-color: transparent;
        }
      }
    }
  }

  .content-requirement {
    width: 1200px;
    margin: 30px auto;

    .search-bar {
      width: 80%;
      margin: 0 auto;
      margin-top: 20px;
      margin-bottom: 20px;
      display: flex;
      justify-content: space-between;
      align-items: center;
    }

    .requirement-list {
      width: 100%;
      margin-top: 20px;
      padding: 0;
    }

    .requirement-item {
      box-sizing: border-box;
      margin-bottom: 20px;
      background: #fff;
      // 左边图片区域 右边文字区域
      display: flex;
      justify-content: space-between;
      align-items: center;

      .require-img {
        .require-image {
          width: 200px;
          height: 150px;
          object-fit: cover;
        }
      }

      .requirement-info {
        width: calc(100% - 210px); // 减去图片宽度
        display: flex;
        flex-direction: column;

        .title-container {
          display: flex;
          justify-content: space-between;
          align-items: center;
          margin-bottom: 10px;
          .requirement-title {
            // 超过一行隐藏
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 1; // 显示的行数
            overflow: hidden;
            text-overflow: ellipsis;
            font-size: 18px;
            font-weight: bold;
            margin: 0;
            flex: 2;
          }
          .requirement-status {
            flex: 1;
          }
        }

        .extra-info {
          display: flex;
          margin-bottom: 10px;
          font-size: 14px;
          color: #595b5e;
        }

        .requirement-description {
          // 超过两行隐藏
          display: -webkit-box;
          -webkit-box-orient: vertical;
          -webkit-line-clamp: 2; // 显示的行数
          overflow: hidden;
          text-overflow: ellipsis;
          font-size: 14px;
          color: #595b5e;
          margin-bottom: 10px;
        }
        .requirement-footer {
          display: flex;
          justify-content: flex-end; // 整体靠右对齐
          gap: 15px; // 调整图标组之间的间距

          .footer-item {
            display: flex; // 内联 flex 布局
            align-items: center; // 图标和数字垂直居中对齐
            gap: 5px; // 图标和数字之间的间距

            .footer-number {
              font-size: 14px;
              color: #666;
            }
          }
        }
      }
    }

    .pagination {
      width: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-top: 10px;
    }
  }
}
</style>

<style lang="scss" scoped>
.content {
  //width: 100%;
  //height: 1880px;
  padding-bottom: 40px;

  .content-info {
    width: 100%;
    height: 440px;
    margin-top: 40px;
    background: url('@/assets/images/require-bg.png') no-repeat;
    background-size: 100% 100%;

    .content-info-block {
      width: 1200px;
      padding-top: 78px;
      margin: auto;
      color: #fff;

      .info-block-title {
        margin-bottom: 20px;
        text-align: center;
        font-size: 46px;
        font-weight: 400;
        letter-spacing: 6px;
        margin: 0;
      }

      .info-block-sub-title {
        text-align: center;
        font-size: 16px;
        font-weight: 500;
        margin-bottom: 30px;
        letter-spacing: 8px;
      }

      .btn-list {
        text-align: center;
        :deep(.custom-white-btn) {
          font-size: 16px;
          border-color: white;
          color: white;
          background-color: transparent;
        }
      }
    }
  }

  .content-requirement {
    width: 1200px;
    margin: 30px auto;

    .search-bar {
      width: 80%;
      margin: 0 auto;
      margin-top: 20px;
      margin-bottom: 20px;
      display: flex;
      justify-content: space-between;
      align-items: center;
    }

    .requirement-list {
      width: 100%;
      margin-top: 20px;
      padding: 0;
    }

    .requirement-item {
      box-sizing: border-box;
      margin-bottom: 20px;
      background: #fff;
      // 左边图片区域 右边文字区域
      display: flex;
      justify-content: space-between;
      align-items: center;

      .require-img {
        .require-image {
          width: 200px;
          height: 150px;
          object-fit: cover;
        }
      }

      .requirement-info {
        width: calc(100% - 210px); // 减去图片宽度
        display: flex;
        flex-direction: column;

        .title-container {
          display: flex;
          justify-content: space-between;
          align-items: center;
          margin-bottom: 10px;
          .requirement-title {
            // 超过一行隐藏
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 1; // 显示的行数
            overflow: hidden;
            text-overflow: ellipsis;
            font-size: 18px;
            font-weight: bold;
            margin: 0;
            flex: 2;
          }
          .requirement-status {
            flex: 1;
          }
        }

        .extra-info {
          display: flex;
          margin-bottom: 10px;
          font-size: 14px;
          color: #595b5e;
        }

        .requirement-description {
          // 超过两行隐藏
          display: -webkit-box;
          -webkit-box-orient: vertical;
          -webkit-line-clamp: 2; // 显示的行数
          overflow: hidden;
          text-overflow: ellipsis;
          font-size: 14px;
          color: #595b5e;
          margin-bottom: 10px;
        }
        .requirement-footer {
          display: flex;
          justify-content: flex-end; // 整体靠右对齐
          gap: 15px; // 调整图标组之间的间距

          .footer-item {
            display: flex; // 内联 flex 布局
            align-items: center; // 图标和数字垂直居中对齐
            gap: 5px; // 图标和数字之间的间距

            .footer-number {
              font-size: 14px;
              color: #666;
            }
          }
        }
      }
    }

    .pagination {
      width: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-top: 10px;
    }
    // 新增最新活动模块样式
    .latest-activity {
      width: 100%;
      margin-top: 30px;
      padding: 20px;
      background: #fff; // 白色背景
      border-radius: 8px; // 圆角

      .activity-title {
        font-size: 28px;
        font-weight: 600;
        color: #333;
        margin-bottom: 20px;
        padding-bottom: 10px;
        border-bottom: 1px solid #e5e7eb; // 标题下分割线
        text-align: center; // 标题居中

        span {
          position: relative;
          background: #fff;
          z-index: 1000;
          // 文字左下角一个#3E0EFD的正方形
          &::after {
            content: '';
            position: absolute;
            left: -20px;
            bottom: -10px; // 与标题底部对齐
            width: 12px; // 正方形宽度
            height: 12px; // 正方形高度
            background: #3e0efd; // 正方形颜色
          }
          //右上角一个#FD0E9E的三角形
          &::before {
            content: '';
            position: absolute;
            right: -20px; // 与标题底部对齐
            top: -15px; // 与标题底部对齐
            background: #fd0e9e; // 正方形颜色
            width: 24px;
            height: 20px;
            transform: scaleX(-1);
            clip-path: polygon(
              0 0,
              /* 左上角 */ 24px 0,
              /* 右上角 */ 24px 12px,
              /* 右上内部转折点 */ 12px 12px,
              /* 内部转折点 */ 12px 24px,
              /* 右下内部转折点 */ 0 24px,
              /* 左下角 */ 0 0 /* 闭合路径 */
            );
          }
        }
      }

      .activity-content {
        display: flex; // 左右布局
        gap: 20px; // 图文间距

        .activity-img {
          flex: 0 0 50%;
          height: 320px; // 图片高度

          img {
            width: 100%;
            height: 100%;
            object-fit: cover; // 图片覆盖容器
            border-radius: 4px;
          }
        }

        .activity-text {
          flex: 1; // 文字区域占剩余空间
          // 文本缩进
          text-indent: 2em; // 首行缩进2个字符
        }
      }
    }
  }
}
</style>
